package com.yy.base.common.service;

import com.yy.base.common.dao.Dao;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.Serializable;

public abstract class BaseService {
	@Autowired
	protected Dao dao;
	
	public void save(Object obj) {
		this.dao.save(obj);
	}
	public void update(Object obj) {
		this.dao.update(obj);
	}
	public void delete(Object obj) {
		this.dao.delete(obj);
	}
	@SuppressWarnings("unchecked")
	public <T> T get(Class<T> clz, Serializable id) {
		return this.dao.get(clz, id);
	}
	/**
	 * 传入实体对象、表名保存数据
	 * obj： 实体对象
	 * table：表名
	 */
	public int save(Object obj, String table) {
		return dao.save(obj, table);
	}
	/**
	 * 传入实体对象、表名修改数据
	 * obj： 实体对象
	 * table：表名
	 */
	public int update(Object obj, String table) {
		return dao.update(obj, table);
	}
	/**
	 * 传入实体对象、表名修改数据
	 * obj： 实体对象
	 * table：表名
	 * idName: 主键属性
	 */
	public int update(Object obj, String table, String idName) {
		return dao.update(obj, table, idName);
	}
	/**
	 * 执行SQL
	 * @param sql
	 * @param objs
	 */
	public int executeSql(String sql, Object ...objs) {
		return dao.executeSql(sql, objs);
	}
	public Dao getDao() {
		return dao;
	}
}